const exp = require("express"),
      app = exp(),
      bodyP = require("body-parser"),
      fs = require('fs'),
  // 引入multer模块
      mt = require('multer'),
  // 使用插件处理提交过来的multeipart/form-data数据，将处理结果放到req.body里
      form = mt();
app.use(exp.static('www'));
app.use(bodyP.urlencoded({ extended: false }));

// 添加留言
app.post('/addMessage', (req, res) => {
  // 
  function formatContent(content) {
    let result = content.replace(/\</g, "&lt;").replace(/\>/g, "&gt;");
    return result;
  }
  // 1.获取请求参数
  let message = {};
  let title = formatContent(req.body.title);
  let content = formatContent(req.body.message);
  let ip = req.ip;
  let date = new Date().getTime();
  message.message = content;
  message.title = title;
  message.ip = ip;
  message.date = date;
  console.log(message)
  if (message.title.trim() == "" || message.message.trim() == "") {
    res.json({ code: "success", message: "提交留言失败：标题不能为空！" })
  } else {
    // 读取文件 
    fs.readFile("data/messages.json", (err, data) => {
      let datalength = data.toString().trim().length;
      let douhao = datalength > 0 ? "," : "";
      // 2.处理数据 把数据保存到文件或数据库中
      fs.appendFile("data/messages.json", douhao + JSON.stringify(message) + "\r\n", (err) => {
        if (!err) {
          // 3.响应数据
          res.json({ code: "success", message: "提交留言成功！" });
        }
        else {
          res.json({ code: "error", message: "提交留言失败！" });
        }
      })
    })
  }
})
// 获取留言
app.get('/message', (req, res) => {
  // 读取文件内容
  fs.readFile("data/messages.json", (err, data) => {
    let messagesArr = JSON.parse("[" + data.toString().trim() + "]");
    // 处理数据  把数据从文件或数据库中读取出来

    // 响应内容
    res.json({ code: "success", data: messagesArr })
  })

})
app.listen(2000, () => {
  console.log('服务器运行正常！')
})